"""
文件处理工具函数 (utils/file_utils.py)

提供与文件操作相关的辅助函数。
"""
import os
import logging

# 配置日志记录器
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

def allowed_file(filename, allowed_extensions):
    """
    检查文件名是否具有允许的扩展名。

    Args:
        filename: 文件名。
        allowed_extensions: 允许的扩展名集合 (小写)。

    Returns:
        bool: 是否允许。
    """
    # 检查文件名中是否包含 '.' 且 '.' 之后的部分（即扩展名）在允许的集合中
    return '.' in filename and \
           filename.rsplit('.', 1)[1].lower() in allowed_extensions

def ensure_directory_exists(directory_path):
    """
    确保目录存在，不存在则创建。

    Args:
        directory_path: 目录路径。

    Returns:
        str: 目录路径。
    """
    # 检查目录是否存在
    if not os.path.exists(directory_path):
        try:
            # 如果不存在，则创建目录，包括任何必需的父目录
            os.makedirs(directory_path, exist_ok=True)
            logger.info(f"已创建目录: {directory_path}")
        except OSError as e:
            # 处理创建目录时可能发生的错误
            logger.error(f"创建目录 {directory_path} 时出错: {e}")
            raise # 重新引发异常，让调用者知道操作失败
    return directory_path 